\documentclass[a4paper, 11pt, oneside]{article}

%Para garantizar la división correcta de palabras en castellano
\usepackage[spanish,activeacute]{babel}
%%\hyphenrules{nohyphenation}

% idioma
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}

%tablas
\usepackage{booktabs}
\usepackage{multirow}

% Personalizar listas
\usepackage{paralist}

%rotar tablas
\usepackage{rotating}

%color tablas
\usepackage{colortbl}
%\usepackage[table]{xcolor}

%espaciado
\usepackage{setspace}
\onehalfspacing
\setlength{\parindent}{0pt}
\setlength{\parskip}{2.0ex plus0.5ex minus0.2ex}


%margenes según n. icontec
\usepackage{vmargin}
\setmarginsrb           { 4.0cm}  % left margin
                        { 3.0cm}  % top margcm
                        { 2.0cm}  % right margcm
                        { 2.0cm}  % bottom margcm
                        {   0pt}  % head height
                        {0.0 cm}  % head sep
                        {   9pt}  % foot height
                        { 1.0cm}  % foot sep

% inserción url's notas de pie.
\usepackage{url}


% Paquetes de la AMS:
\usepackage{amsmath, amsthm, amsfonts}
\addto\captionsspanish{\def\refname{\textsc{Bibliografía}}}

\newcommand\portada{
	\begin{titlepage}
		\begin{center}
			{\large \bf HERRAMIENTA DE ESTUDIO PARA LAS MARATONES DE PROGRAMACIÓN PROMOVIDAS EN EL PROGRAMA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN}
			\vfill
			{\large\bf LINA MARCELA JIMÉNEZ BECERRA \par}
			\vfill
			{\large\bf UNIVERSIDAD TECNOLÓGICA DE PEREIRA  \par}
			{\large\bf FACULTAD DE INGENIERÍAS \par}
			{\large\bf INGENIERÍA DE SISTEMAS Y COMPUTACIÓN \par}
			{\large\bf PEREIRA\par}
			{\large\bf SEPTIEMBRE 13 DE 2011 \par}
		\end{center}
	\end{titlepage}
}
\newcommand\contraportada{
	\begin{titlepage}
		\begin{center}
			{\large \bf HERRAMIENTA DE ESTUDIO PARA LAS MARATONES DE PROGRAMACIÓN PROMOVIDAS EN EL PROGRAMA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN }
			\vfill
			{\large\bf LINA MARCELA JIMÉNEZ BECERRA \par}
			\vfill
			{\large\bf Documento del anteproyecto de grado presentado como requisito para optar al título de Ingeniero(a) de Sistemas y Computación\par}
			\vfill
			{\large\bf UNIVERSIDAD TECNOLÓGICA DE PEREIRA  \par}
			{\large\bf FACULTAD DE INGENIERÍAS \par}
			{\large\bf INGENIERÍA DE SISTEMAS Y COMPUTACIÓN \par}
			{\large\bf PEREIRA\par}
			{\large\bf SEPTIEMBRE 13 DE 2011 \par}
		\end{center}
	\end{titlepage}
}

\begin{document}
\portada
\contraportada

	\tableofcontents

	\clearpage
	\begin{center}
	\section{TÍTULO}
	\end{center}
	HERRAMIENTA DE ESTUDIO PARA LAS MARATONES DE PROGRAMACIÓN PROMOVIDAS EN EL PROGRAMA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN
\clearpage

\begin{center}
\section{FORMULACIÓN DEL PROBLEMA}
\end{center}
Para promover la participación en competencias de programación, el Semillero de Investigación In-Sílico organiza maratones de programación, estás también son una forma de entrenar a los maratonistas menos experimentados antes de enfrentarse a las maratones colombianas organizadas por la REDIS/ACIS\footnote{Maratones Nacionales organizadas por la Red de Decanos y Directores de Ingeniería de Sistemas (REDIS), y la Asociación Colombiana de Ingenieros de Sistemas (ACIS):\newline http://www.acis.org.co/index.php?id=1665}. 

Actualmente y para llevar a cabo tales competencias se viene utilizando el aplicativo PC\textasciicircum2 y una de las razones por las cuales se utiliza es porque se ha seguido el estandar existente en las competencias del Circuito Colombiano de Maratones de Programación REDIS/ACIS, según el cual cada una de las sedes participantes a nivel nacional debe usarlo\footnote{Requisitos para ser sede de una maratón interuniversitaria del Circuito Colombiano de Maratones de Programación:\\ http://acm.javeriana.edu.co/maratones/wp-content/uploads/descargas/GuiaConfiguracionCCMP.pdf, Pag 4}, sin embargo, se han evidenciado una serie de características propias de la aplicación que no contribuyen a mejorar este tipo de eventos. Entre ellas:
\begin{itemize}
\item Los clientes del aplicativo PC\textasciicircum2 a través del cual los maratonistas envian la solución de los problemas, debe ser instalado en cada una de las máquinas pertenecientes a las salas de computo que han sido habilitadas para la competencia, lo que implica, limitar el número de equipos participantes a la cantidad de computadores configurados con el cliente, e instalar, configurar y probar la herramienta cada vez que se modifica la sala habilitada para la maratón.
\item No es posible modificar la herramienta computacional debido a que no es Open-Source.\footnote{http://www.ecs.csus.edu/pc2/doc/faq/index.html\#GETSOURCEFAQ}
\end{itemize}
Tales características afectan negativamente el proceso de entrenamiento que se busca con las maratones lideradas por In-Sílico, puesto que impiden realizar postmaratón, es decir, los competidores no tienen cómo evaluar los problemas a los que se acaban de enfrentar con respecto a esos mismos casos de prueba de la competencia, de modo que puedan resolver los ejercicios que no les fue posible hacer durante la competencia o mejorar los algoritmos que ya habían planteado durante la misma.\newline
Esto no es factible, en primer lugar porque los problemas son habilitados solamente para el periodo que dura la maratón de programación y los clientes autorizados para envío de las soluciones deben estar instalados en máquinas correspondientes a salas designadas para las competencias, habilitar una postmaratón con el actual aplicativo PC\textasciicircum2 es un proceso lento y desgastante\footnote{Según el Ingeniero Hugo Humberto Morales, promotor de estos eventos, el proceso se toma una semana y 2 horas} porque es necesario gestionar la sala de computo, hacer pruebas técnicas a cada uno de los clientes y convocar nuevamente a los competidores.

En segundo lugar, no es posible acceder al código fuente del aplicativo y adicionarle funcionalidades que permitan generar un ambiente de retroalimentación.

Ante lo anterior y partiendo del hecho de que modificar un estandar no es un proceso inmediato, se ha evidenciado la necesidad de utilizar una herramienta diferente a PC\textasciicircum2 para las maratones que lidera el semillero, de modo que también sea una herramienta de estudio y aporte al verdadero propósito de estas actividades que es contribuir a la retroalimentación entre quienes participan.

El no contar con una herramienta computacional enfocada a la retroalimentación de los maratonistas, pone en riesgo la pérdida del esfuerzo que tanto el semillero como los maratonistas y el mismo programa han realizado al apoyar este tipo de eventos, pues desafortunadamente, en lo corrido del Circuito Colombiano de Maratones de Programación REDIS/ACIS del presente año se ha observado un índice de deserción del 54,35\%\footnote{Datos tomados de Listados oficiales del circuito REDIS/ACIS 2011} en los competidores de la universidad.%%%
%\[pc^2\]

\subsection{DEFINICIÓN DEL PROBLEMA}
El programa de Ingeniería de Sistemas y Computación de la Universidad Tecnológica de Pereira no cuenta con una herramienta computacional que permita juzgar los problemas de las maratones de programación con exactamente los mismos casos de prueba de la competencia, durante un periodo de tiempo posterior a las competencias en las que participa, de modo que permita hacer postmaratones y brinde un espacio de retroalimentación entre los competidores.

\clearpage

\begin{center}
\section{JUSTIFICACIÓN}
\end{center}
%%se deben mencionar todos los aspectos positivos que trae el solucionar la herramienta
La solución al conjunto de problemas habilitados en una maratón de programación es juzgado de acuerdo a su desempeño frente a un conjunto de casos de prueba específicos de esa competencia, por tanto, la valoración que se obtenga por determinado problema no será necesariamente el mismo si se juzga frente a otros casos de prueba, este es uno de los aspectos que evidencia la importancia de brindar una herramienta en la que el maratonista evalúe su desempeño, puesto que este fácilmente podría buscar un juez diferente al de la competencia y calificar sus problemas, sin embargo, ya no estaría midiendo su desempeño frente al ámbito de la competencia que acaba de pasar.

El hecho de que el aplicativo empleado actualmente para llevar a cabo las maratones impida realizar una retroalimentación de las mismas, evidencia una clara falencia que debe ser superada, puesto que si bien es importante promover la participación en las maratones de programación, también lo es suministrar una herramienta de estudio que brinde un ambiente de retroalimentación entre los maratonistas.

Con una herramienta de estudio postmaraton es posible contribuir al proceso de entrenamiento puesto que los competidores podrían tratar de resolver o mejorar aquellos problemas con los que tuvieron dificultades durante la competencia y además podrían compartir entre ellos mismos los métodos utilizados para resolverlos.
El contar con una herramienta que permita hacer postmaraton, permite evidenciar si los competidores intentn resolver los problemas que no les fue posible solucionar durante la maratón.
	
Es importante trabajar por la continuidad de las maratones de programación que se han venido llevando a cabo en el programa de Ingeniería de Sistemas y Computación, estas son una forma de darle reconocimiento al programa y a la misma universidad, tanto a nivel nacional como internacional, en repetidas ocasiones los equipos de la Universidad Tecnológica de Pereira han ganado a nivel nacional en el Circuito Colombiano de Maratones de Programación REDIS/ACIS:
\begin{itemize}
\item Décima Competencia del año 2010\footnote{http://acm.javeriana.edu.co/maratones/wp-content/uploads/2011/01/total.htm}.
\item Tercera Competencia del año 2011\footnote{http://acm.javeriana.edu.co/maratones/wp-content/uploads/2011/04/board.htm}.
\item Cuarta Competencia del año 2011\footnote{http://acm.javeriana.edu.co/maratones/wp-content/uploads/2011/05/board.htm}.
\item Octava Competencia del año 2011\footnote{http://acm.javeriana.edu.co/maratones/wp-content/uploads/2011/05/board.htm}.
\item Décima Competencia del año 2011\footnote{http://acm.javeriana.edu.co/maratones/board/}.
\end{itemize}

Utilizar una herramienta opcional a PC\textasciicircum2 que permita además la transferencia del conocimiento entre quienes participan en este tipo de eventos, posibilita que la sede Pereira adquiera una importante experiencia que puede ser compartida con el resto de sedes y competidores a nivel nacional.

%%Implementar una herramienta de estudio adaptada a las necesidades especificas de las maratones llevadas a cabo en la universidad, solucionaría el problema de tener que calificar los problemas desde las salas específicas a las habilitadas para las maratones.

\clearpage

\begin{center}
\section{OBJETIVOS}
\end{center}
\subsection{OBJETIVO GENERAL}
%El objetivo general debe delimitar muy bien que es lo que se va a hacer
Desarrollar una herramienta computacional que brinde una etapa adicional de postmaratón para las competencias de programación llevadas a cabo en el Programa de Ingeniería de Sistemas y Computación de la Universidad Tecnológica de Pereira.
\subsection{OBJETIVOS ESPECÍFICOS}
\begin{itemize}
%%los objetivos específicos deben delimitar muy bien los entregables
\item Definir los requerimientos para el diseño de una herramienta computacional orientada a la web que brinde una etapa adicional de postmaratón para las competencias de programación llevadas a cabo en el Programa.
\item Realizar un estudio que permita seleccionar una herramienta computacional de código abierto que funcione como juez de maratones de programación y se pueda adaptar a las necesidades de este proyecto.
\item Adaptar la herramienta seleccionada de modo que cumpla con los requerimientos  previamente definidos.
%para que sea una herramienta de estudio.
\item Implantar la herramienta computacional en un servidor del programa para probar su funcionamiento mediante una prueba pilóto.
%\item Ejecutar un plan de pruebas para garantizar el correcto funcionamiento de la herramienta de estudio de maratones de programación.
\item Generar la documentación de la herramienta.
\end{itemize}
\clearpage

\begin{center}
\section{MARCO REFERENCIAL}
\end{center}
\subsection {MARCO HISTÓRICO}
Un referente histórico de las maratones de programación es la Association for Computer Machinery (ACM), una de las principales organizaciones educativas en cuanto a informática en todo el mundo y que ha promovido este tipo de competencias desde 1977\footnote{http://cm.baylor.edu/ICPCWiki/Wiki.jsp?page=The\%20Early\%20Years}.

Por medio de las maratones de programación, tanto la ACM como la industria y la academia animan y centran la atención del público en la próxima generación de profesionales de la algoritmia mientras que incentivan a sus participantes en la búsqueda por la excelencia.

En Colombia, la Asociación Colombiana de Ingenieros de Sistemas (ACIS) y la Red de Decanos y Directores de Ingeniería de Sistemas (REDIS) han venido colaborando estrechamente desde 2004\footnote{http://rediscol.org/cms/proyectos/72-maratón-de-programacion.html}, en la organización de las maratones de programación a nivel universitario y a nivel nacional, con el propósito de generar un espacio de sana competencia y entrenamiento para estudiantes de diferentes universidades del país, estas se enmarcan dentro del circuito mundial de maratones de programación ACM International Collegiate Programming Contest (ACM ICPC).

\subsection{ESTADO DEL ARTE}
En el ámbito mundial de las maratones de programación existen diferentes tipos de contets\footnote{Concursos de programación}, tales como el ACM regional contests\footnote{http://www.acis.org.co/index.php?id=1677}, el International Olympiad in Informatics (IOI)\footnote{http://ioinformatics.org/workshop.shtml}, el Central European Olympiad in Informatics (CEOI)\footnote{http://ceoi2011.mimuw.edu.pl/}, el Google Code Jam\footnote{http://code.google.com/codejam/faq.html}, el ACM International Collegiate Programming Contest (ACM ICPC)\footnote{http://cm.baylor.edu/welcome.icpc}, el Internet Problem Solving Contest(IPSC)\footnote{http://ipsc.ksp.sk/index.php}, entre otros. \newline 
Tales concursos pueden clasificarse en Real-Time Contest  y Online Contests, si bien, ambos tipos poseen un conjunto de reglas  previamente establecidas por sus organizadores, los Real-Time suelen ser más estrictos porque se requiere la presencia fisíca de los maratonistas en el lugar establecido para la competencia.

De las competencias mencionadas, sobresalen como las más prestigiosas\footnote{Tomado de: http://dl.acm.org/citation.cfm?id=1375976\&bnc=1} la competencia ACM ICPC en el campo de las Real-Time e IPSC en las maratones Online.

En el país el Circuito Colombiano de Maratones de Programación REDIS/ACIS\footnote{http://www.acis.org.co/index.php?id=556} se enmarca bajo el modelo de ACM ICPC, de modo que es un circuito de entrenamiento para la Maratón Nacional de ACM ICPC\footnote{http://www.acis.org.co/index.php?id=1677}, que se realiza una sola vez al año, mientras el circuito de entrenamiento realiza competencias durante todo el año.

De acuerdo al tipo de concursos mencionados anteriormente, existen herramientas computacionales que permiten llevarlos a cabo, son conocidas como judge contest\footnote{Sistema juez para concursos de maratones de programación} y consisten en un sistema que recibe el código fuente enviado por el maratonista como solución a un problema de la competencia, para compilarlo y ejecutarlo con los casos de prueba correspondientes, según el desempeño que presente el programa, el sistema devuelve al competidor una respuesta, entre las posibles respuestas se encuentran: Correct, Presentation Error, Runtime Error, Time Limit Exceeded, etc.\newline
El algoritmo enviado debe correr bajo restriciones establecidas en el sistema, tales como tamaño limite, memoria limite, restriciones de seguridad, etc.

En su mayoría, dichas herramientas han sido desarrolladas por los propios gestores de los diferentes concursos existentes a nivel  mundial, algunas de estas están a disposición del público interesado, bien sea como online judge  o como aplicaciones descargables para su propio uso.

Los online judge son aplicaciones web que poseen caracteristícas como: 
\begin{itemize}
\item Poseen una importante base de datos con problemas de programación clasificados en diferentes categorías.
\item Habilitan sus propios concursos de programación.
\item Cuentan con sus propios casos de prueba.
\item Suministran cuentas de usuarios para que el público interesado pruebe los problemas o participe en los concursos.
\item Suministran estadísticas del desempeño de los usuarios.
\end{itemize}
Entre los online judge disponibles, se encuentran:
\begin{itemize}
\item UVa Online Judge\footnote{http://uva.onlinejudge.org/index.phps}, desarrollado por la universidad de Valladolid en España.\\
Dentro del conjunto de problemas de programación que ofrece, se encuentran los usados en las competencias regionales y mundiales de la ACM ICPC.
\item Timus Online Judge\footnote{http://acm.timus.ru/}, implementado y mantenido por Ural State University de Rusia, brinda acceso entre otros problemas, a los utilizados en la Northeastern European Regional Contest (NEERC)\footnote{http://neerc.ifmo.ru/information/about.html}.
\item HDU Online Judge System\footnote{http://acm.hdu.edu.cn/}, perteneciente a Hangzhou Dianzi University de China.
\item Internet Problem Solving Contest\footnote{http://www.spoj.pl/}, es un juez en línea enfocado a Online Contest, útil para entrenamiento en equipo.
\item Peking University Online Judge\footnote{http://poj.org/}, presenta además, la opción de solicitar la publicación de problemas o habilitación de maratones por parte de los usuarios.
\item ZOJ\footnote{http://acm.zju.edu.cn/onlinejudge/}, se trata del juez en línea de la universidad de Zhejiang en China, miembro del equipo ACM ICPC.
\item USACO Training Program Gateway\footnote{http://train.usaco.org/usacogate}, este juez está dirigido especialmente a estudiantes de colegio en los  Estados Unidos de Norteamérica, con el fin de prerararlos para las IOI, sin embargo, ofrece sus servicios al público de maratonistas a nivel mundial.
\item Sphere Online Judge\footnote{http://www.spoj.pl/}, además de poseer su propio set de problemas, presta el servicio de habilitar concursos y publicar ejercicios.
\item TJU Online Judge\footnote{http://acm.tju.edu.cn/toj/}, sistema juez perteneciente a la universidad China Tianjin University, brinda problemas tipo ACM ICPC.
\end{itemize}

Las anteriores herramientas computacionales son una muestra del software existente para maratones de programación, en idioma ingles, ya que debido a la variedad de concursos de programación que se desarrollan en diferentes lugares del mundo, el idioma no siempre es ingles, lo que representa una barrera a la hora de utilizarlos.\newline 

En lo que respecta a judges disponibles como aplicaciones descargables, es posible listar:
\begin{itemize}
\item Programming Contest Control System, PC\textasciicircum2, es una herramienta computacional que sirve para calificar(juzgar) problemas durante una maratón de programación, se basa en una arquitectura cliente servidor con clientes para los equipos participantes (teams), administrador y juez de la maratón de programación en curso.\newline 
Los maratonistas envian la solución de los problemas a través del cliente teams para que sean calificados por el servidor. La persona encargada que desempeñar el rol de juez es quien a través del cliente juez determina si la calificación es o no apropiada.\newline
PC\textasciicircum2 fue desarrollado en California State University, Sacramento (CSUS), está hecho en java, su actual versión es V9\footnote{Es posible obtener información más detallada de este software en:http://www.ecs.csus.edu/pc2/}.
\item RuscalTech Contest Control System\footnote{}, después de PC\textasciicircum2 este juez es bastante reconocido, está escrito en C\#, Visual Basic y .NET.
\item Debuxxe - Computer Olympiad Trainer\footnote{http://sourceforge.net/projects/debuxxe/}, sistema juez escrito en VB6.0, no está enfocado a la competencia de varios equipos sino al entrenamiento personal del maratonista.
\item AceJudge\footnote{http://sourceforge.net/projects/acejudge/}, está desarrollado en C\# y se especializa en concursos de programación.
%%%%CORREGIR APOSTROFE
\item Nafis' Programming Contest Judge Tool\footnote{http://sourceforge.net/projects/judge-tool/}, se trata de un sistema cliente servidor, escrito en C y C++, según su página oficial de desarrollo, posee todas las características de PC\textasciicircum2 pero de una forma más sencilla y sin los bugs que éste suele presentar.
\item DOMjudge programming contest jury system\footnote{http://domjudge.sourceforge.net/}, es un sistema cliente servidor, escrito en PHP, shell-script y C/C++.
\item gCoder\footnote{http://sourceforge.net/projects/gcoder/}, se basa en un sistema cliente servidor, está escrito en Python.
\end{itemize}

Judges online o instalables pueden ser utilizadas para el entrenamiento y/o para la competencia, sin embargo, su uso está limitado a las condiciones de sus administradores, en el caso de los online o a las funcionalidades que estos ya traen por defecto, en el caso de los instalables, en consecuencia, es común encontrar herramientas personalizadas para las características específicas de determinados concursos.

En Colombia las diferentes universidades que promueven las maratones de programación, usan como herramienta de estudio, bien sea, PC\textasciicircum2 o algún otro juez de programación pertenecientes a universidades extranjeras, es decir, no se encuentran herramientas de estudio desarrolladas por y para las necesidades especificas de las maratones de las diferentes universidades del país.

En el ámbito de la Universidad Tecnológica de Pereira, no se encuentran aplicaciones desarrolladas para competencias de programación, situación que no debe de extrañar, sencillamente porque el programa de Ingeniería de Sistemas y Computación es pionero en esta actividad dentro de la institución.

\subsection{MARCO CONCEPTUAL}
\begin{itemize}
\item Maratón de Programación: Una maratón de programación es un evento competitivo en el que diferentes equipos se enfrentar a solucionar problemas durante el menor tiempo posible, para solucionar tales ejercicios se ponen en práctica de una manera integral las habilidades y conocimientos de un ingeniero, de modo que se logré programar el algoritmo adecuado.\\
Entre los diferentes propósitos de este tipo de actividades está el motivar y propiciar el trabajo en grupo, aplicar conocimientos de ingeniería e integrar la comunidad académica interesada en el desarrollo de software.
\item Casos de Prueba: Están conformados por archivos de entrada y salida, los de entrada corresponden a un conjunto de argumentos frente a los cuales es evaluado cada uno de los algoritmos que un maratonista propone como solución a un determinado problema, y según los cuales debe retornar los valores especificados en el archivo de salida.
\item ACM: la Association for Computer Machinery (ACM)es una organización a nivel mundial que reúne a todos los profesionales, estudiantes, investigadores y a cada persona interesada en ciencias de la computación. Actualmente la ACM cuenta con más de 92000 miembros a nivel mundial y es reconocida como la asociación número uno para los profesionales en computación.\newline
Esta organización facilita varios recursos para toda su comunidad con el fin de que la computación crezca como ciencia y como profesión, entre ellos la biblioteca digital más importante del campo de la computación, las publicaciones, cursos y libros online, conferencias, artículos científicos, noticias acerca de la computación, bolsa de empleo, blogs de discusión ACM, revistas científicas, entre otros\footnote{http://www.acm.org/}.
\item ICPC: El International Collegiate Programming Contest (ICPC) promueve maratones de programación bajo los auspicios de la ACM y tiene sede en la universidad de Baylor\footnote{http://www.baylor.edu/}, estas maratones son conocidas como competencias ACM ICPC, gozan de un gran prestigio y tradicionalidad en el mundo de la programación, con ellas se fomenta la creatividad, el trabajo en equipo y la innovación en la creación de nuevos programas de software, se crea un ambiente de trabajo bajo presión en el que los estudiantes pueden poner a prueba todos sus conocimientos y capacidad de respuesta. \\
En las maratones de programación ACM ICPC participan decenas de miles de los mejores estudiantes y profesores en las disciplinas informáticas en casi 2.000 universidades de más de 80 países en seis continentes, estos se agrupan en una red global de universidades que participan en competencias regionales para clasificar a las Finales ACM-ICPC World\footnote{http://cm.baylor.edu/welcome.icpc}.
\item Circuito Colombiano de Maratones de Programación REDIS/ACIS\footnote{http://www.acis.org.co/index.php?id=556}:La Red de Decanos y Directores de Ingeniería de Sistemas y Afines (REDIS), en conjunto con la Asociación Colombiana de Ingenieros de Sistemas (ACIS), organizan anualmente una serie de maratones de programación a nivel nacional, con las que se brinda un espacio de sana competencia entre equipos de diferentes univeridades del país, espacio en el cual miden su desempeño frente a problemas tipo maratón ACM ICPC\footnote{http://cm.baylor.edu/welcome.icpc}.
\item Maratón Nacional de Programación: La maratón nacional de programación es un evento que sirve como mecanismo para clasificar a la Maratón Regional Latinoamericana ACM ICPC, es organizada por ACIS y REDIS. Se realiza cada año y de manera simultánea en diferentes sedes del país que han sido seleccionadas previamente.
\item Maratón Regional Latinoamericana ACM ICPC\footnote{http://www.acis.org.co/index.php?id=1677}: Es una competencia internacional de programación, regional suramericana del ACM International Collegiate Programming Contest, se realiza en diferentes sedes de Suramérica (Argentina, Bolivia, Brasil, Chile, Colombia, Cuba, México, Perú y Venezuela), en este evento son seleccionados los equipos que participarán en la Maratón Mundial ACM ICPC.
\item Maratón Mundial ACM ICPC\footnote{http://cm.baylor.edu/welcome.icpc}: Es el máximo nivel en las maratones organizadas por ACM ICPC, en estas participan los mejores equipos del mundo, y cada año se selecciona un lugar diferente del mundo como sede para el desarrollo del evento. \\
Los algoritmos sólo pueden ser implementados en lenguajes como C, C++ ó Java.


\end{itemize}
\clearpage

\begin{center}
\section{DISEÑO METODOLÓGICO PRELIMINAR}
\end{center}

\subsection{FORMULACIÓN DE LA HIPÓTESIS}
%¿Será que brindando un espacio de postamaratón a través de una herramienta de estudio para las maratones de programación llevadas a cabo en el Programa de Ingeniería de Sistemas y Computación de la Universidad Tecnológica de Pereira, es posible contribuir a la retroalimentación entre los maratonistas?
%¿Será que una herramienta de estudio que permita realizar postamaratones para las maratones de programación llevadas a cabo en el Programa de Ingeniería de Sistemas y Computación de la Universidad Tecnológica de Pereira, contribuye a la retroalimentación un espacio de retroalimentación entre los maratonistas?
¿Será que una herramienta de estudio para las maratones de programación llevadas a cabo en el Programa de Ingeniería de Sistemas y Computación de la Universidad Tecnológica de Pereira, permite generar un espacio de (estudio) postamaratón para las mismas y contribuir a la retroalimentación entre los maratonistas?
%%ES NECESARIO PRECISAR CÓMO SE VA A VALIDAR LA HIPÓTESIS, CON PRUEBAS PILOTOS ETC, esto también se podría hacer desde los objetivos, mirar proyecto de Jenny
\subsection {TIPO DE INVESTIGACIÓN}
La presente investigación tiene un enfoque cuantitativo.

\subsection{POBLACIÓN}
La población es el conjunto de estudiantes pertenecientes al Programa de Ingeniería de Sistemas y Computación
de la Universidad Tecnológica de Pereira que participan en las maratones de programación.

. Está conformada por 1006\footnote{Información tomada de: BOLETIN ELECTRÓNICO(2011-I), UNIVERSIDAD TECNOLÓGICA DE PEREIRA, OFICINA DE PLANEACIÓN; pag 14.
} estudiantes, repartidos en jornada diurna y nocturna.
\subsection{MÉTODO O ESTRUCTURA DE LA UNIDAD DE ANÁLISIS} 
************DUDA:el título y la ubicación de este item es adecuado para indicar cómo se va a validar la hipótesis??o se coloca en el DISEÑO DE INSTRUMENTOS PARA TOMA DE INFORMACIÓN******************
Para validar la hipótesis se realizarán pruebas pilotos.

Para realizar la medición de las variables, se realizarán dos pruebas  observación directa sobre los resultados de las maratones y de las postmaratones en las que participan los equipos de maratones de la universidad.
El proyecto se verificará mediante pruebas piloto y mediante encuestas aplicadas a la población especificada anteriormente.
Las pruebas piloto  

\subsection{OPERACIONALIZACIÓN DE VARIABLES}
En la tabla  \ref{tb:opervar} se puede apreciar las diferentes variables que serán medidas, con sus respectivas dimensiones y valores.

Allí, los valores correspondientes a m y p, son el número de maratones abordadas para el experimento y la cantidad de problemas propios de la maratón, respectivamente.

%\begin{table}[h]
\begin{table}[p]
%H
%\begin{center}
\caption{Operacionalización de Variables}
\label{tb:opervar}
\begin{center}
\resizebox{15cm}{!} {
\begin{tabular}{|c|p{5cm}|c|p{5cm}|c|}
\hline
VARIABLE & DEFINICIÓN & SUBVARIABLE & DEFINICIÓN & VALORES\\
\hline
DCM & Desempeño Competidores Maratones (DCM), es la variable que permite medir el desempeño de los competidores en las maratones & \multirow{2}{*}{PR} & Problemas Resueltos (PR), indica el número de problemas resueltos & [0 ; p]\\
& & PIF & Problemas Intentos Fallidos (PIF), indica el número de problemas que el competidor intento resolver & [0 ; p] \\
& & PIN & Problemas Intentos Nulos (PIN), Indica el número de problemas que el competidor no logró resolver & [0 ; p]\\
\hline
RPM & Retroalimentación Post Maratón (RPM), es la variable que permite medir los niveles de retroalimentación después de la maratón & \multirow{1}{*}{PIFR} & Problemas Intentos Fallidos Resueltos (PIFR), indica el número de problemas que el competidor logró mejorar en post maratón & [0 ; p] \\
& & PINR & Problemas Intentos Nulos Resueltos (PINR), Indica el número de problemas que el competidor no logró resolver en la maratón pero si en la post maratón & [0 ; p] \\

\hline
\end{tabular}
%%\end{center}
}
\end{center}
%\end{center}	
\end{table}	
\clearpage

\subsection{ESQUEMA TEMÁTICO}
\begin{enumerate}
\item Introducción.
\item Planteamiento del problema de investigación.
\item Objetivos generales y específicos.
\item Justificación.
\item Marco Referencial.
\pointedenum\begin{enumerate}
\item Marco histórico.
\item Estado del arte.
\item Marco Conceptual.
\end{enumerate}
\item Diseño metodológico
\pointedenum\begin{enumerate}	
\item Hipótesis.
\item Tipo de investigación.
\item Población
\item Operacionalización de variables
\end{enumerate}
\item Herramientas computacionales de código abierto que funcionan como jueces de maratones de programación.
\item Comprensión del juez elegido para el proyecto.
\item Adaptación del juez seleccionado como herramienta de estudio.
\item Implantación y pruebas de la herramienta computacional.
\item Medición del impacto del proyecto.
\item Documentación de la herramienta.
\item Conclusiones.
\item Bibliografía.
\end{enumerate}
\clearpage

\subsection{DISEÑO DE INSTRUMENTOS PARA TOMA DE INFORMACIÓN}
Para verificar el proyecto, se realizará una prueba pilóto y (LE QUITAMOS LAS ENCUESTAS?? SI LA DEJAMOS TOCA ANEXAR EL FORMATO DE LA ENCUESTA)encuestas dirigidas a los (maratonistas)estudiantes pertenecientes al Programa de Ingeniería de Sistemas y Computación de la Universidad Tecnológica de Pereira que participan en las maratones de programación. 
La prueba pilóto consistirá en abordar dos competencias de programación, luego de las cuales se  hará uso de la herramienta computacional para brindar la etapa postmaratón, esto con el fin de medir las variables definidas, mediante observación directa sobre los resultados de las maratones y postmaratones.
Las encuestas serán aplicadas a los maratonistas para medir el grado de percepción que tienen con respecto espacio de retoalimentación  de las maratones de programación llevadas a cabo en el programa.
\\ \\ \\ \\ 

\begin{table}[h!]
\caption{Instrumentos de medición}
\label{tb:instmed}
\begin{center}
\begin{tabular}{|p{5cm}|c|c|c|c|c|}
\hline
MARATONISTA & \multicolumn{3}{|c|}{MARATÓN} & \multicolumn{2}{|c|}{POSTMARATÓN}\\
\cline{2-6}
& PR & PIF & PIN & PIFR & PINR \\
\hline & & & & & \\
\hline & & & & & \\
\hline & & & & & \\
\hline & & & & & \\
\hline & & & & & \\
\hline & & & & & \\
\hline & & & & & \\
\hline & & & & & \\
\hline & & & & & \\
\hline & & & & & \\
\hline & & & & & \\
\hline & & & & & \\
\hline & & & & & \\
\hline
\end{tabular}
\end{center}
\end{table}	

\clearpage

\begin{center}
\section{PERSONAS QUE PARTICIPAN EN EL PROYECTO}
\end{center}	
Lina Marcela Jiménez Becerra\\
Estudiante Ingeniería de Sistemas y Computación\\
Universidad Tecnológica de Pereira\\
\newline
\newline
COLABORADORES:
\newline
\newline
Ing. Hugo Humberto Morales Peña\\
Director de proyecto de grado\newline
Ingeniero de Sistemas\\
Profesor Programa Ingeniería de Sistemas y Computación\\
Universidad Tecnológica de Pereira\\
\newline
\newline
In-Sílico\\
Semillero de Investigación\\
Pulpa\\
Semillero de Investigación\\
Programa Ingeniería de Sistemas y Computación\\
Universidad Tecnológica de Pereira\\
\clearpage

\begin{center}
\section{RECURSOS DISPONIBLES}
\end{center}

\begin{itemize}
\item Computador de escritorio.
\item Acceso a internet.
\item Código fuente de diferententes jueces de código abierto.
\item Base de datos de artículos publicados en IEEE explore.
\item Base de datos de artículos publicados en ACM Digital Library.
\end{itemize}
\clearpage

\begin{center}
\section{POSIBILIDADES DE PUBLICACIÓN}
\begin{itemize}
\item Un artículo en la revista Scientia et technica\footnote{Ciencia y Técnica}, donde se de a conocer la importancia y resultados de la investigación realizada en este proyecto.
\item Un articulo dirigido a las publicaciones de ACIS, en el que se plasme la importante iniciativa y resultados al llevar a cabo este proyecto.
\end{itemize}
\end{center}
\clearpage

\begin{center}
\section{CRONOGRAMA}
\end{center}

\begin{table}[h!]
\begin{center}
\resizebox{15cm}{!} {
\begin{tabular}{|p{8cm}|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
\hline
ACTIVIDADES & \multicolumn{16}{|c|}{SEMANAS} \\
\cline{2-17}
& 01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 & 14 & 15 & 16 \\
\hline
Definir los requerimientos para el diseño de la herramienta computacional. &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} & & & & & & & & & & & & & &\\
\hline
Estudio y selección de jueces de código abierto para adaptar al proyecto. & &\cellcolor[gray]{0.8}  &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} & & & & & & & & & & &\\
\hline
Adaptación de la herramienta seleccionada. & & & & &\cellcolor[gray]{0.8}  &\cellcolor[gray]{0.8}  &\cellcolor[gray]{0.8}  &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} & & & & &\\
\hline
Implantación mediante una prueba pilóto. & & & & & & & & & & &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} & &\\
\hline
Generar la documentación de la herramienta. & & & & & & & & & & & & &\cellcolor[gray]{0.8} & \cellcolor[gray]{0.8} & \cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} \\
\hline
\end{tabular}
}
\caption{Cronograma de Actividades}
\label{tb:crono}
\end{center}
\end{table}
\clearpage

\begin{center}
\section{BIBLIOGRAFÍA}
\end{center}

AMIRPOUR AMARAII Saman, Observations on Teamwork Strategies in the ACM International Collegiate Programming
Contest. En: ACM Magazine Crossroads, Volume 14 Issue 4, June 2008 .

ASTRACHAN Owen, KHERA Vivek, KOTZ David, The internet programming contest: a report and philosophy, SIGCSE '93 Proceedings of the twenty-fourth SIGCSE technical symposium on Computer science education. En: ACM SIGCSE Bulletin, Volume 25 Issue 1, March 1993. 

ANDRIANOFF Steven K, GEWARD Stephen D, HEISSENBERGER Greta A, LEVINE David B, A testing-based framework for programming contests, En: ACM eclipse '03 Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange.

MANZOOR Shahriar, Common mistakes in online and real-time contests. En: ACM Magazine Crossroads, Volume 7 Issue 5, August 2001 - Late Summer Edition.   

ERNST Fabian, MOELANDS Jeroen, PIETERSE Seppo, Programming contest strategies, En: ACM Magazine
Crossroads -Special issue on computer games, Volume 3 Issue 2, December 1996.		 

LEAL José Paulo, SILVA Fernando, Mooshak: a Web-based multi-site programming contest system. En ACM: Software—Practice \& Experience, Volume 33 Issue 6, May 2003.


AVELLANEDA Fabio, Guía para la configuración de una competencia del Circuito Colombiano de Maratones de Programación. En: http://acm.javeriana.edu.co/maratones/wp-content/uploads/descargas/GuiaConfiguracionCCMP.pdf

Association for Computing Machinery. The ACM-ICPC International Collegiate Programming Contest.\newline
Sitio web: http://cm.baylor.edu/

ACM-ICPC Live Archive. Sitio web: http://livearchive.onlinejudge.org/

ACM Server. Sitio web: http://acm-server.ru/

UVA Online Judge. Sitio web: http://uva.onlinejudge.org/

SOJ Online Judge. Sitio web: http://www.spoj.pl/

Benelux Algorithm Programming: GEPWNAGE Online Judge.\newline
Sitio web: http://www.bapc.eu/

North Western European Regional Contest: Computer Environment.\newline
Sitio web: http://www.nwerc.eu/

Southwestern Europe Regional Contest: Computer Environment.\newline
Sitio web: http://www.swerc.eu/

Programming Contest Control System: Documentación.\newline
Sitio web: http://www.ecs.csus.edu/pc2/

Asociación Colombiana de Ingenieros de Sistemas: Maratones de Programación.\newline
Sitio web: http://www.acis.org.co/index.php?id=556

Red de Decanos y Directores de Ingeniería de Sistemas y Afines: Maratón de Programación.\newline
Sitio web: http://rediscol.org/cmsv3/?p=210



\clearpage
\end{document}
